package cn.tx.stream;

import java.util.ArrayList;

/**
 * @author Mxb
 * @version 1.0
 * @date 2020/10/15 19:17
 */
public class StreamDemo {
    public static void main(String[] args) {
        //创建一个集合，存储多个字符串元素
        ArrayList<String> list = new ArrayList<String>();
        list.add("林青霞");
        list.add("张曼玉");
        list.add("王祖贤");
        list.add("柳岩");
        list.add("张敏");
        list.add("张无忌");
        //把集合中所有以"张"开头的元素存储到一个新的集合
        ArrayList<String> zhangList = new ArrayList<String>();
        for (String s : list) {
            if (s.startsWith("张")) {
                zhangList.add(s);
            }
        }
        System.out.println("集合中以张开头的元素： " + zhangList);
        //把"张"开头的集合中的长度为3的元素存储到一个新的集合
        ArrayList<String> threeList = new ArrayList<String>();
        for (String s : zhangList) {
            if (s.length() == 3) {
                threeList.add(s);
            }
        }
        System.out.println("张开头的集合中的长度为3的元素: "+threeList);
        //遍历上一步得到的集合
        System.out.println("----------------------foreach遍历集合----------------------");
        for (String s : threeList) {
            System.out.println(s);
        }
        //Stream流来改进
        System.out.println("----------------------Stream流来改进------------------------");
        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3)
                .forEach(s -> System.out.println(s));

        System.out.println("---------------------简化输出后-------------------------------");
        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3)
                .forEach(System.out::println);
    }
}
